package cn.tedu.micro.demo.device.service.impl;

import cn.tedu.micro.demo.common.vo.GunInfoVO;
import cn.tedu.micro.demo.device.dao.repository.DeviceRepository;
import cn.tedu.micro.demo.device.pojo.po.GunInfoPO;
import cn.tedu.micro.demo.device.service.DeviceService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
@Slf4j
public class DeviceServiceImpl implements DeviceService {
    @Autowired
    private DeviceRepository deviceRepository;

    @Override
    public GunInfoVO getGunStatus(Integer gunId) {
        //日志打印非常重要,可以帮助我们程序员 检查程序流程,数据是否正确
        //如果不正确,问题定位 依靠日志解决
        //第一点: 方法入参之后,出参之前打印数据
        //第二点: 方法出现分支,在不同条件下的分支逻辑 要单独打印
        log.info("查询枪状态业务，入参gunId={}",gunId);
        GunInfoPO po = deviceRepository.getGunById(gunId);
        //判断po非空
        if(po != null){
            log.info("查询枪状态业务，查到了结果po={}",po);
            //将po转换成vo
            GunInfoVO vo = new GunInfoVO();
            vo.setId(po.getId());
            vo.setStatus(po.getStatus());
            log.info("查询枪状态业务，入参gunId={},出参vo={}",gunId,vo);
            return vo;
        }else{
            log.info("查询枪状态业务，未查到结果 po=null");
            //返回空值
            return null;
        }


    }
}
